﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using CapaNegocio;
using Entidades;

namespace CapaPresentacion
{
    public partial class MantenimientoCategorias : System.Web.UI.Page
    {
        CategoriaNE catNE = new CategoriaNE();

        List<Categoria> lista = new List<Categoria>();

        Categoria cat= new Categoria();

       static bool operacion;
       
        public void cargarCategorias()
        {//cat
            lista = catNE.listarCategorias();
            //gvCategorias.DataSource = null;
            gvCategorias.DataSource = lista;
            gvCategorias.DataBind();

        }
       

        public void asignarCategorias()
        {
           
            cat.IdCategoria = Convert.ToInt32(txtCodigo.Text);
            cat.Nombre = txtNombre.Text;
            cat.Descripcion = txtDescripcion.Text;

        
        }

        public string nuevaCategorias()
        {
            String rpta = "";
            asignarCategorias();
            rpta = catNE.insertarCategoria(cat);
            return rpta;
        
        }

        public string modificarCategoria()
        {
            string rpta = "";
            asignarCategorias();
            rpta = catNE.actualizarCategoria(cat);
            return rpta;
        
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack==false)
            {
                cargarCategorias();
                habilitarEntradas(true);
                habilitarBotones(true, true, true);
            
                }
        }

        protected void btnGrabar_Click(object sender, EventArgs e)
        {
            
           
                if (operacion == true)
                {
                    lblRegistrado.Text = nuevaCategorias() + " Registro insertado";


                }
                else
                {
                    lblRegistrado.Text = modificarCategoria() + "Registro actualizado";

                    btnGrabar.Text = "Grabar";
                }
                cargarCategorias();
                
                habilitarEntradas(false);
                habilitarBotones(true, false, true);
                Response.Redirect("MantenimientoCategorias.aspx");
          
        }

        public void buscarCategoriaById()
        {
            int idcat = Convert.ToInt32(txtCodigo.Text);
            Categoria cate = new Categoria();
            cat = catNE.buscarCategoriaById(idcat);
            txtCodigo.Text = cat.IdCategoria.ToString();
            txtNombre.Text = cat.Nombre;
            txtDescripcion.Text = cat.Descripcion;
        }

        public void limpiarCategoria()
        {
            txtCodigo.Text = "";
            txtNombre.Text = "";
            txtDescripcion.Text = "";
        }
               public void habilitarEntradas(bool estado)
        {
            txtCodigo.Enabled = estado;
            txtNombre.Enabled = estado;
            txtDescripcion.Enabled = estado;
        }

        public void habilitarBotones(bool esnuevo, bool esgrabar, bool esbuscar)
        {
            btnNuevo.Enabled = esnuevo;
            btnGrabar.Enabled = esgrabar;
            btnBuscar.Enabled = esbuscar;
        
        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            buscarCategoriaById();
            btnGrabar.Text = "Actualizar";
            operacion = true;
            habilitarBotones(false, true, false);
        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            habilitarEntradas(true);
            this.txtCodigo.Text = catNE.codCategoria().ToString();
            operacion = true;
            habilitarBotones(false, true, false);
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            /*if (Page.IsPostBack == true)
            {*/
                cargarCategorias();
                habilitarEntradas(false);
                operacion = true;
                habilitarBotones(true, false, true);
            //}
        }

        protected void btnCancelar_Click(object sender, ImageClickEventArgs e)
        {
            limpiarCategoria();
            habilitarEntradas(false);
        }

      
    }
}